/*
 * @Author: YeFei
 * @Date: 2021-11-05 09:17:22
 * @LastEditTime: 2021-11-06 10:43:18
 * @Descripttion: 
 */
const baseUrl = process.env.VUE_APP_URL
const path = require("path")
const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);
module.exports = {
    productionSourceMap: false,
    pages: {
        index: {
            // page 的入口
            entry: "src/main.js",
            // 模板来源
            template: "public/index.html",
            // 在 dist/index.html 的输出
            filename: "index.html",
            // 当使用 title 选项时，
            // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
            title: "Index Page",
            // 在这个页面中包含的块，默认情况下会包含
            // 提取出来的通用 chunk 和 vendor chunk。
            chunks: ["chunk-vendors", "chunk-common", "index"],
        },

        // index1: {
        //   // page 的入口
        //   entry: "mobile/main.js",
        //   // 模板来源
        //   template: "public/index.html",
        //   // 在 dist/index.html 的输出
        //   filename: "mobile.html",
        //   // 当使用 title 选项时，
        //   // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
        //   title: "mobile Page",
        //   // 在这个页面中包含的块，默认情况下会包含
        //   // 提取出来的通用 chunk 和 vendor chunk。
        //   chunks: ["chunk-vendors", "chunk-common", "index"],
        // },
        // 当使用只有入口的字符串格式时，
        // 模板会被推导为 `public/subpage.html`
        // 并且如果找不到的话，就回退到 `public/index.html`。
        // 输出文件名会被推导为 `subpage.html`。
        // product: "product/main.js",
    },
    devServer: {
        // hot: true,
        host: 'pttest.sxpei.cn',
        // port: 8081,
        // open: IS_PROD,
        proxy: {
            '/v1/ali': {
                target: 'http://192.168.8.68:8888',
                pathRewrite: { '^/v1/ali': '' },
                changeOrigin: true,
            },
            "/v1/": {
                target: baseUrl,
                changeOrigin: true,
            },
            "/share/": {
                target: baseUrl,
                changeOrigin: true,
            },
        },
    },
    lintOnSave: false,
    configureWebpack: (config) => {
        config.devtool = "source-map"
        if (process.env.NODE_ENV === 'production') {
            config["performance"] = { //打包文件大小配置
                    "maxEntrypointSize": 10000000,
                    "maxAssetSize": 30000000
                }
                // 项目发布时去除console语句
                // config.optimization.minimizer[0].options.terserOptions.compress.drop_console = true;
        }
        //编辑器
        const webpack = require("webpack")
        config.plugins.push(
            new webpack.ProvidePlugin({
                "window.Quill": "quill",
                // "window.Quill": "quill/dist/quill.js",
                Quill: "quill/dist/quill.js",
            })
        )

        Object.assign(config.resolve.alias, {
            src: path.resolve(__dirname, "./src"),
            //mobile: path.resolve(__dirname, "./mobile"),
            product: path.resolve(__dirname, "./product"),
            utils: path.resolve(__dirname, "./utils"),
        })

        // 开发环境需要gzip
        if (process.env.NODE_ENV === "production") {
            const CompressionWebpackPlugin = require("compression-webpack-plugin")
            config.plugins.push(
                new CompressionWebpackPlugin({
                    // 正在匹配需要压缩的文件后缀
                    test: /\.(js|css|svg|woff|ttf|json|html)$/,
                    // 大于10kb的会压缩
                    threshold: 10240,

                    filename: "[path].gz[query]", // 压缩后的文件名
                    algorithm: "gzip", // 使用gzip压缩
                    // deleteOriginalAssets: true, // 删除未压缩的文件，谨慎设置，如果希望提供非gzip的资源，可不设置或者设置为false
                })
            )
        }
    },
    css: {
        loaderOptions: {
            less: {
                lessOptions: {
                    // If you are using less-loader@5 please spread the lessOptions to options directly
                    javascriptEnabled: true,
                    modifyVars: {
                        //'primary-color': '#4AAF6C',
                        "primary-color": "#4AAF6C", // 全局主色
                        "link-color": "#4AAF6C", // 链接色
                        "success-color": "#52c41a", // 成功色
                        "warning-color": "#EB5757", // 警告色
                        "error-color": "#f5222d", // 错误色
                        "font-size-base": "14px", // 主字号
                        "heading-color": "rgba(51, 51, 51, 51.100)", // 标题色
                        "text-color": "rgba(85, 85, 85, 85.100)", // 主文本色
                        "text-color-secondary": "rgba(153, 153, 153, 153.100)", // 次文本色
                        "disabled-color": "rgba(153 153, 153, 153.50)", // 失效色
                        "border-radius-base": "4px", // 组件/浮层圆角
                        "border-color-base": "#d9d9d9", // 边框色
                        "box-shadow-base": "0 2px 8px rgba(0, 0, 0, 0.15)", // 浮层阴影

                        "layout-header-background": "rgba(255, 255, 255, 1)",
                        "layout-sider-background": "rgba(26, 27, 28, 1)",
                        // 'menu-bg': 'rgba(26, 27, 28, 1)',
                        "menu-dark-bg": "rgba(26, 27, 28, 1)",
                        "menu-item-height": "32px",
                        "menu-inline-toplevel-item-height": "32px",
                    },
                },
            },
        },
    },
    //Solution For Issue:You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.
    //zhengkai.blog.csdn.net
    runtimeCompiler: true,
}